<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Services Documentation</title>
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '#',
        VERSION:     '1.0',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="None" href="index.html" />
    <link rel="prev" title="Runtime Documentation" href="runtime.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="modindex.html" title="Global Module Index"
             accesskey="M">modules</a> |</li>
        <li class="right" >
          <a href="runtime.html" title="Runtime Documentation"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">Index</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="services-documentation">
<h1>Services Documentation</h1>
<p>This page contains the Services Package documentation.</p>
<div class="section" id="module-services.htmltask">
<h2>The <tt class="xref docutils literal"><span class="pre">htmltask</span></tt> Module</h2>
<p>Created on 07/09/2009</p>
<p>&#64;author: Tony Allan</p>
<dl class="class">
<dt id="services.htmltask.HTMLTask">
<em class="property">class </em><tt class="descclassname">services.htmltask.</tt><tt class="descname">HTMLTask</tt><big>(</big><em>spaces</em>, <em>task_uri</em>, <em>task_def_rs</em>, <em>logger='yarra.runtime.task'</em><big>)</big></dt>
<dd><p>Bases: <a title="runtime.task.Task" class="reference external" href="runtime.html#runtime.task.Task"><tt class="xref docutils literal"><span class="pre">runtime.task.Task</span></tt></a></p>
<p><strong>* HTMLTask will be replaced by TransformTask. *</strong>
<strong>* HTMLTask will be replaced by TransformTask. *</strong>
<strong>* HTMLTask will be replaced by TransformTask. *</strong>
<strong>* HTMLTask will be replaced by TransformTask. *</strong>
<strong>* HTMLTask will be replaced by TransformTask. *</strong>
<strong>* HTMLTask will be replaced by TransformTask. *</strong></p>
<dl class="docutils">
<dt>usage:</dt>
<dd>html_uri = self.context.uri(&#8216;html:&#8217;).template.basic
data = Resource()
data.hello = &#8216;World!&#8217;
generated_html_uri = self.context.put(html_uri, data)    # HTML generated when this returns
gen_res = self.context.remove(generated_html_uri)        # get then delete the generated html
print(gen_res)</dd>
</dl>
<dl class="method">
<dt id="services.htmltask.HTMLTask.cb_generate">
<tt class="descname">cb_generate</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Generate HTML as a result of a &#8216;put&#8217; to  &#8216;put&#8217;.
The resource containing the input data is passed to this callback.
Doesn&#8217;t return until generation is complete.
Returns the URI of the generated HTML.</dd></dl>

<dl class="method">
<dt id="services.htmltask.HTMLTask.cb_start">
<tt class="descname">cb_start</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Called when the task starts. uri is the task URI.
Register all templates as html:template/xxx for the template Resource
and html:template/xxx/ for the generation function.</dd></dl>

</dd></dl>

</div>
<div class="section" id="module-services.httpclienttask">
<h2>The <tt class="xref docutils literal"><span class="pre">httpclienttask</span></tt> Module</h2>
<p>Created on 07/12/2009</p>
<p>&#64;author: eh01</p>
<dl class="class">
<dt id="services.httpclienttask.HTTPClientTask">
<em class="property">class </em><tt class="descclassname">services.httpclienttask.</tt><tt class="descname">HTTPClientTask</tt><big>(</big><em>spaces</em>, <em>task_uri</em>, <em>task_def_rs</em>, <em>logger='yarra.runtime.task'</em><big>)</big></dt>
<dd><p>Bases: <a title="runtime.task.Task" class="reference external" href="runtime.html#runtime.task.Task"><tt class="xref docutils literal"><span class="pre">runtime.task.Task</span></tt></a></p>
<p>Perform HTTP client function on another web site (i.e. GET a remote URL).</p>
<dl class="method">
<dt id="services.httpclienttask.HTTPClientTask.cb_create_request">
<tt class="descname">cb_create_request</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Create a request. The resource that is &#8216;PUT&#8217; to Spaces needs to include:
- url &#8211; String: url of the endpoint (e.g. <a class="reference external" href="http://www.google.com">http://www.google.com</a> or <a class="reference external" href="file:///C:/Blah/yada.exe">file:///C:/Blah/yada.exe</a>).
- http_method &#8211; String: For HTTP request. Valid values are: &#8216;GET&#8217;, &#8216;POST&#8217;, &#8216;PUT&#8217; or &#8216;DELETE&#8217;. None for non HTTP Requests.
- data &#8211; Dictionary: Data for the request.</dd></dl>

<dl class="method">
<dt id="services.httpclienttask.HTTPClientTask.cb_issue_request">
<tt class="descname">cb_issue_request</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.httpclienttask.HTTPClientTask.cb_start">
<tt class="descname">cb_start</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd></dd></dl>

</dd></dl>

</div>
<div class="section" id="module-services.httpserver">
<h2>The <tt class="xref docutils literal"><span class="pre">httpserver</span></tt> Module</h2>
<p>Created on 10/09/2009</p>
<p>&#64;author: Tony Allan</p>
<p>HTTP thread, server and request handlers used by the HTTP Task.</p>
<dl class="class">
<dt id="services.httpserver.HTTPThread">
<em class="property">class </em><tt class="descclassname">services.httpserver.</tt><tt class="descname">HTTPThread</tt><big>(</big><em>task</em>, <em>site_res</em><big>)</big></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">threading.Thread</span></tt></p>
<p>The register_site message starts this daemon thread, which runs the MultiThreadedHTTPServer.
This free&#8217;s the task up to process additional messages.</p>
<p>This class and its data structures are not available outside the HTTP task.</p>
<dl class="method">
<dt id="services.httpserver.HTTPThread.run">
<tt class="descname">run</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

</dd></dl>

<dl class="class">
<dt id="services.httpserver.MultiThreadedHTTPServer">
<em class="property">class </em><tt class="descclassname">services.httpserver.</tt><tt class="descname">MultiThreadedHTTPServer</tt><big>(</big><em>server_address</em>, <em>RequestHandlerClass</em>, <em>bind_and_activate=True</em><big>)</big></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">SocketServer.ThreadingMixIn</span></tt>, <tt class="xref docutils literal"><span class="pre">BaseHTTPServer.HTTPServer</span></tt></p>
<p>All incoming messages are processed by the standard python HTTP server.
Each request handler is given its own thread, which exists until processing of the request is complete.</p>
<p>This class and its data structures are not available outside the HTTP task.</p>
<dl class="method">
<dt id="services.httpserver.MultiThreadedHTTPServer.serve_forever">
<tt class="descname">serve_forever</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.httpserver.MultiThreadedHTTPServer.shutdown">
<tt class="descname">shutdown</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

</dd></dl>

<dl class="class">
<dt id="services.httpserver.RequestHandler">
<em class="property">class </em><tt class="descclassname">services.httpserver.</tt><tt class="descname">RequestHandler</tt><big>(</big><em>request</em>, <em>client_address</em>, <em>server</em><big>)</big></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">BaseHTTPServer.BaseHTTPRequestHandler</span></tt></p>
<p>Request handler for all HTTP requests.</p>
<p>This class and its data structures are not made available outside the HTTP task.</p>
<dl class="method">
<dt id="services.httpserver.RequestHandler.do_DELETE">
<tt class="descname">do_DELETE</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.httpserver.RequestHandler.do_GET">
<tt class="descname">do_GET</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.httpserver.RequestHandler.do_POST">
<tt class="descname">do_POST</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.httpserver.RequestHandler.do_PUT">
<tt class="descname">do_PUT</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.httpserver.RequestHandler.handle_request">
<tt class="descname">handle_request</tt><big>(</big><em>method</em>, <em>data=None</em><big>)</big></dt>
<dd>Parameters:
method &#8211; String: HTTP method invoked.</dd></dl>

<dl class="method">
<dt id="services.httpserver.RequestHandler.request_spaces_context">
<tt class="descname">request_spaces_context</tt><big>(</big><em>context</em>, <em>url</em>, <em>method</em>, <em>data</em><big>)</big></dt>
<dd><p>Calls spaces depending on the http method. Returns the resource of the response from Spaces.</p>
<p>Returns: datastore.resource.Resource</p>
<p>Parameters:
context &#8211; runtime.spaces.SpacesContext: 
url &#8211; String: url that has been requested by the caller.
method &#8211; String: http method associated with the request.
data &#8211; String: serialised resource as a string. This is the data passed along with the request.</p>
</dd></dl>

</dd></dl>

</div>
<div class="section" id="module-services.httptask">
<h2>The <tt class="xref docutils literal"><span class="pre">httptask</span></tt> Module</h2>
<p>Created on 20/08/2009.
Major refactoring 24/09/2009.</p>
<p>&#64;author: Edward Huynh, Tony Allan</p>
<dl class="class">
<dt id="services.httptask.HTTPTask">
<em class="property">class </em><tt class="descclassname">services.httptask.</tt><tt class="descname">HTTPTask</tt><big>(</big><em>spaces</em>, <em>task_uri</em>, <em>task_def_rs</em>, <em>logger='yarra.runtime.task'</em><big>)</big></dt>
<dd><p>Bases: <a title="runtime.task.Task" class="reference external" href="runtime.html#runtime.task.Task"><tt class="xref docutils literal"><span class="pre">runtime.task.Task</span></tt></a></p>
<p>This is a daemon task. It uses a separate thread to generate messages.
In this version, a single multi-threaded HTTPTask will support all incoming 
HTTP requests.</p>
<p>self.spaces contains a reference to the SpacesQueue for this task.
RequestHandler does the real work.</p>
<p>configuration.xml contains the definitions and documentation.</p>
<dl class="method">
<dt id="services.httptask.HTTPTask.cb_add_site">
<tt class="descname">cb_add_site</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Add a new HTTP server site - watch_all on uri.listener
res.listen = uri to listen in.</dd></dl>

<dl class="method">
<dt id="services.httptask.HTTPTask.cb_delete_site">
<tt class="descname">cb_delete_site</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Delete a list currently being listened on.</dd></dl>

<dl class="method">
<dt id="services.httptask.HTTPTask.cb_start">
<tt class="descname">cb_start</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Called when the task starts.
uri is the task uri</dd></dl>

<dl class="method">
<dt id="services.httptask.HTTPTask.cb_stop">
<tt class="descname">cb_stop</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>stop any listeners still running.</dd></dl>

</dd></dl>

</div>
<div class="section" id="module-services.timetask">
<h2>The <tt class="xref docutils literal"><span class="pre">timetask</span></tt> Module</h2>
<p>Created on 22/10/2009</p>
<p>&#64;author: eh01</p>
<dl class="class">
<dt id="services.timetask.TimeJob">
<em class="property">class </em><tt class="descclassname">services.timetask.</tt><tt class="descname">TimeJob</tt><big>(</big><em>interval</em>, <em>spaces_context</em>, <em>cron</em>, <em>time_job_uri</em><big>)</big></dt>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">threading.Thread</span></tt></p>
<p>TimeJob is a thread which represents either a timer or cron job. At the interval specified, it &#8216;put&#8217;s to 
the time_job_uri. If it is a timer job, it will &#8216;put&#8217; to the time_job_uri.pop only once then the thread will finish,
otherwise if it is a cron job, it will sleep for the specified interval and then &#8216;put&#8217; to the time_job_uri.pop again.
The cron job must be stopped by the TimeTask.</p>
<dl class="method">
<dt id="services.timetask.TimeJob.run">
<tt class="descname">run</tt><big>(</big><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.timetask.TimeJob.stop_job">
<tt class="descname">stop_job</tt><big>(</big><big>)</big></dt>
<dd>Stop job by setting the stop flag to break the loop on next iteration.</dd></dl>

</dd></dl>

<dl class="class">
<dt id="services.timetask.TimeTask">
<em class="property">class </em><tt class="descclassname">services.timetask.</tt><tt class="descname">TimeTask</tt><big>(</big><em>spaces</em>, <em>task_uri</em>, <em>task_def_rs</em>, <em>logger='yarra.runtime.task'</em><big>)</big></dt>
<dd><p>Bases: <a title="runtime.task.Task" class="reference external" href="runtime.html#runtime.task.Task"><tt class="xref docutils literal"><span class="pre">runtime.task.Task</span></tt></a></p>
<p>Task to assist with timer and cron activities. A TimeTask client will have to &#8216;put&#8217; to either the 
&#8216;timer&#8217; or &#8216;cron&#8217; uri to create a timer or cron job. The resource will contain the interval at which the
client will want to be notified. The job will run as a seperate thread and &#8216;put&#8217; to the time job uri to 
notify the client, so the client will need to watch/process this uri. Once the client no longer requires
the time job, the client can delete it by deleting the resource at the time job uri.</p>
<dl class="method">
<dt id="services.timetask.TimeTask.cb_create_cron">
<tt class="descname">cb_create_cron</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>spaces_context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Creates a TimeJob that will put to the timer uri at the interval specified. Users will have to 
watch/process that uri for the &#8216;put&#8217;s and then delete the timer.</dd></dl>

<dl class="method">
<dt id="services.timetask.TimeTask.cb_create_timer">
<tt class="descname">cb_create_timer</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>spaces_context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Creates a TimeJob that will put to the timer uri at the interval specified. Users will have to 
watch/process that uri for the &#8216;put&#8217; and then delete the timer.</dd></dl>

<dl class="method">
<dt id="services.timetask.TimeTask.cb_delete_time_job">
<tt class="descname">cb_delete_time_job</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>spaces_context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Stops and deletes the time job from the job dictionary.</dd></dl>

<dl class="method">
<dt id="services.timetask.TimeTask.cb_start">
<tt class="descname">cb_start</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>spaces_context</em>, <em>**kwargs</em><big>)</big></dt>
<dd></dd></dl>

<dl class="method">
<dt id="services.timetask.TimeTask.cb_timestamp">
<tt class="descname">cb_timestamp</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>spaces_context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Returns the a timestamp of the current time back to the user.</dd></dl>

<dl class="method">
<dt id="services.timetask.TimeTask.create_time_job">
<tt class="descname">create_time_job</tt><big>(</big><em>interval</em>, <em>spaces_context</em>, <em>time_job_uri</em>, <em>is_cron</em><big>)</big></dt>
<dd>Creates a TimeJob with the specified interval and adds it to the jobs dictionary.</dd></dl>

</dd></dl>

</div>
<div class="section" id="module-services.transformtask">
<h2>The <tt class="xref docutils literal"><span class="pre">transformtask</span></tt> Module</h2>
<p>Created on 15/09/2009</p>
<p>&#64;author: Tony Allan</p>
<dl class="class">
<dt id="services.transformtask.TransformTask">
<em class="property">class </em><tt class="descclassname">services.transformtask.</tt><tt class="descname">TransformTask</tt><big>(</big><em>spaces</em>, <em>task_uri</em>, <em>task_def_rs</em>, <em>logger='yarra.runtime.task'</em><big>)</big></dt>
<dd><p>Bases: <a title="runtime.task.Task" class="reference external" href="runtime.html#runtime.task.Task"><tt class="xref docutils literal"><span class="pre">runtime.task.Task</span></tt></a></p>
<dl class="docutils">
<dt>usage:</dt>
<dd>xxx</dd>
</dl>
<dl class="method">
<dt id="services.transformtask.TransformTask.cb_generate">
<tt class="descname">cb_generate</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Generate transformed resource as a result of a &#8216;put&#8217; to  &#8216;put&#8217;.
The resource containing the input data is passed to this callback.
Doesn&#8217;t return until generation is complete.
Returns the URI of the transformed resource.</dd></dl>

<dl class="method">
<dt id="services.transformtask.TransformTask.cb_start">
<tt class="descname">cb_start</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Called when the task starts. uri is the task URI.
Register all templates as html:template/xxx for the template Resource
and html:template/xxx/ for the generation function.</dd></dl>

</dd></dl>

</div>
<div class="section" id="module-services.updatemanagertask">
<h2>The <tt class="xref docutils literal"><span class="pre">updatemanagertask</span></tt> Module</h2>
<p>Created on 04/12/2009</p>
<p>&#64;author: eh01</p>
<dl class="class">
<dt id="services.updatemanagertask.UpdateManagerTask">
<em class="property">class </em><tt class="descclassname">services.updatemanagertask.</tt><tt class="descname">UpdateManagerTask</tt><big>(</big><em>spaces</em>, <em>task_uri</em>, <em>task_def_rs</em>, <em>logger='yarra.runtime.task'</em><big>)</big></dt>
<dd><p>Bases: <a title="runtime.task.Task" class="reference external" href="runtime.html#runtime.task.Task"><tt class="xref docutils literal"><span class="pre">runtime.task.Task</span></tt></a></p>
<dl class="method">
<dt id="services.updatemanagertask.UpdateManagerTask.cb_install_package">
<tt class="descname">cb_install_package</tt><big>(</big><em>method</em>, <em>uri</em>, <em>new_uri</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd>Downloads the package and prepares it for installation. The resource placed in Spaces should
have a url attribute, which is the url(String) of the package location.</dd></dl>

<dl class="method">
<dt id="services.updatemanagertask.UpdateManagerTask.cb_start">
<tt class="descname">cb_start</tt><big>(</big><em>method</em>, <em>uri</em>, <em>res</em>, <em>result</em>, <em>context</em>, <em>**kwargs</em><big>)</big></dt>
<dd></dd></dl>

</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h3><a href="index.html">Table Of Contents</a></h3>
            <ul>
<li><a class="reference external" href="#">Services Documentation</a><ul>
<li><a class="reference external" href="#module-services.htmltask">The <tt class="docutils literal"><span class="pre">htmltask</span></tt> Module</a></li>
<li><a class="reference external" href="#module-services.httpclienttask">The <tt class="docutils literal"><span class="pre">httpclienttask</span></tt> Module</a></li>
<li><a class="reference external" href="#module-services.httpserver">The <tt class="docutils literal"><span class="pre">httpserver</span></tt> Module</a></li>
<li><a class="reference external" href="#module-services.httptask">The <tt class="docutils literal"><span class="pre">httptask</span></tt> Module</a></li>
<li><a class="reference external" href="#module-services.timetask">The <tt class="docutils literal"><span class="pre">timetask</span></tt> Module</a></li>
<li><a class="reference external" href="#module-services.transformtask">The <tt class="docutils literal"><span class="pre">transformtask</span></tt> Module</a></li>
<li><a class="reference external" href="#module-services.updatemanagertask">The <tt class="docutils literal"><span class="pre">updatemanagertask</span></tt> Module</a></li>
</ul>
</li>
</ul>

            <h4>Previous topic</h4>
            <p class="topless"><a href="runtime.html"
                                  title="previous chapter">Runtime Documentation</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="_sources/services.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="modindex.html" title="Global Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="runtime.html" title="Runtime Documentation"
             >previous</a> |</li>
        <li><a href="index.html">Index</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; Copyright .
      Last updated on Jan 15, 2010.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
    </div>
  </body>
</html>